Computer-based systems are often controlled by formal languages that are complex and difficult to master. Examples of such languages include database languages such as Dbase and SQL (Structured Query Language), operating system languages such as MS-DOS, UNIX, and VMS, and the command languages of some spreadsheets and word processors.
End users of these systems often do not have the specialized training needed to use the formal languages associated with them. Consequently, substantial resources are often expended in the development of human-computer interfaces. A human-computer interface provides the user with access to the functions which the formal language controls, while shielding the user from the complexities of the formal language.
The creation of a human-computer interface may be a costly task involving a lengthy design process, often followed by extensive coding of software. There is therefore a benefit to be realized in providing the developers of human-computer interfaces with tools that allow them to rapidly create interfaces.